#pragma once
#include "Precompile.h"

namespace ThreadLib{
	class Thread : public boost::enable_shared_from_this<Thread>{
	public:
		Thread(boost::function<void(void)> function):m_function(function){}
		virtual ~Thread() {}
		
		virtual void run() = 0;
		virtual void join() = 0;
		
		virtual bool isRunning() = 0;
	protected:
		boost::function<void(void)> m_function;
	};
}

typedef boost::shared_ptr<ThreadLib::Thread> ThreadPtr;